package com.grifo.gwt.client.presenter;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.Window;
import com.google.web.bindery.requestfactory.shared.Receiver;
import com.grifo.gwt.shared.GrifoRequestFactory;
import com.grifo.gwt.shared.UsuarioProxy;
import com.grifo.gwt.shared.UsuarioRequest;

public class UsuarioCadastroPresenter {
	
	private Display display;
	private GrifoRequestFactory request;
	
	public interface Display{
		HasClickHandlers getCreateButton();
		
		void copyTo(UsuarioProxy proxy, UsuarioRequest request);
	}
	
	public void bind(){
		this.display.getCreateButton().addClickHandler(new ClickHandler() {
			
			@Override
			public void onClick(ClickEvent event) {
				persist();
				
			}
		});
	}
	
	public void persist(){
		UsuarioRequest usuarioRequest = request.usuarioRequest();
		UsuarioProxy proxy = usuarioRequest.create(UsuarioProxy.class);
		this.display.copyTo(proxy, usuarioRequest);
		usuarioRequest.persistOrMerge(proxy).fire(new Receiver<UsuarioProxy>() {

			@Override
			public void onSuccess(UsuarioProxy response) {
				Window.alert("Sucesso");
				
			}
		});
	}

}
